Så jeg har nogle problemer med at finde ud af den korrekte brug af list :: sort () med hensyn til en liste over structs. Her er den relevante kode: struct studerende { char firstnm [20], lastnm [20]; int id, karakter; }; listesList; // Irrelevant kode ... cout << "Indtast dit eget navn, id og karakter. (Eks: min første mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grad; sList.push_back (data); sList.sort (); Det problem, jeg prøver at løse, er at bruge sList.sort () til at sortere efter id. Jeg har dog ingen idé om, hvordan jeg korrekt overfører det til liste :: sort (). På forhånd tak for enhver hjælp / tid! EDIT: Løsningen tilføjede simpelthen dette til min struktur bool operator <(const student & cmp) const { retur-id
2021-01-22 08:20:18
Du bør se på std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Der er flere definitioner af denne funktion, og en hvor du kan angive, hvad du vil sortere. Se også det indlæg, jeg synes, det er hvad du har brug for: https://stackoverflow.com/a/21234017/6663947 Rediger: det er et eksempel på komparator: sList.sort ([] (const student & a, const student & b) {return a.idugyldig sortering (Sammenlign komp.) Forudsat at du vil sortere elevobjekterne på din liste efter nøgle-id'et i stigende rækkefølge. Du kan enten definere operator